//
//  KeyStore
//
//  Created by Caue W. on 2011-03-07.
//  Copyright (c) 2011 __MyCompanyName__. All rights reserved.
//
package time.types.ds;
import time.types.ds.Key;

interface KeyStore
{
	function getKey<T>(obj : T) : Null<Key<T>>;
	function dispose<T>(obj : T) : Bool;
	function disposeAll<T>(objs : Iterable<T>) : Bool;
	function getWithKey<T>(k:Key<T>) : Null<T>;
	
}

interface KeyManager implements KeyStore
{
	function setKey<T>(obj : T, k : Key<T>) : Void;
}